/**
 * @ClassName dbUtils
 * @author 杜大磊
 * @version 1.0.0
 * @Description TODO
 * @createTime 2022年08月22日 10:47:00
 */
import Dexie from 'dexie';
// 实例化一个数据库 数据库名称是tikhawk_db
const db = new Dexie('dbname');

// 在dexie框架中我们并不需要管理复杂的版本系统，默认使用框架内部的处理，使用1即可。
// 在数据库中加了一个数据表 common, 同时指定主键 stamp
db.version(1).stores({
  common: 'stamp',
});

// 继续封装我们common表的操作。
// why? 缓存数据库并不像服务端数据库一样，我们需要固定格式的数据，我更推荐使用一个表才缓存数据。
// 这样我们可以更高性能的根据主键来获取我们缓存的整个数据对象。

export const dbPut = (data, stamp) => {
  db.common.put({ data, stamp });
};

export const dbAdd = (data, stamp) => {
  db.common.add({ data, stamp });
};

export const dbGet = (stamp) => {
  return db.common.get(stamp);
};

//以上操作一个数据库和数据库都已经建好了， 下面来使用。
export const IndexedDBStampEnum = {
  PRODUCT: 'product',
};
